
function Map() {  
    this.elements = new Array();  
    //获取MAP元素个数  
    this.size = function() {  
        return this.elements.length;  
    };  
    //判断MAP是否为空  
    this.isEmpty = function() {  
        return (this.elements.length < 1);  
    };  
    //删除MAP所有元素  
    this.clear = function() {  
        this.elements = new Array();  
    };  
    //向MAP中增加元素（key, value)   
    this.put = function(_key, _value) {  
        this.elements.push( {  
            key : _key,  
            value : _value  
        });  
    };  
    //删除指定KEY的元素，成功返回True，失败返回False  
    this.remove = function(_key) {  
        var bln = false;  
        try {  
            for (i = 0; i < this.elements.length; i++) {  
                if (this.elements[i].key == _key) {  
                    this.elements.splice(i, 1);  
                    return true;  
                }  
            }  
        } catch (e) {  
            bln = false;  
        }  
        return bln;  
    };  
    //获取指定KEY的元素值VALUE，失败返回NULL  
    this.get = function(_key) {  
        try {  
            for (i = 0; i < this.elements.length; i++) {  
                if (this.elements[i].key == _key) {  
                    return this.elements[i].value;  
                }  
            }  
        } catch (e) {  
            return null;  
        }  
    };  
    //获取指定索引的元素（使用element.key，element.value获取KEY和VALUE），失败返回NULL  
    this.element = function(_index) {  
        if (_index < 0 || _index >= this.elements.length) {  
            return null;  
        }  
        return this.elements[_index];  
    };  
    //判断MAP中是否含有指定KEY的元素  
    this.containsKey = function(_key) {  
        var bln = false;  
        try {  
            for (i = 0; i < this.elements.length; i++) {  
                if (this.elements[i].key == _key) {  
                    bln = true;  
                }  
            }  
        } catch (e) {  
            bln = false;  
        }  
        return bln;  
    };  
    //判断MAP中是否含有指定VALUE的元素  
    this.containsValue = function(_value) {  
        var bln = false;  
        try {  
            for (i = 0; i < this.elements.length; i++) {  
                if (this.elements[i].value == _value) {  
                    bln = true;  
                }  
            }  
        } catch (e) {  
            bln = false;  
        }  
        return bln;  
    };  
    //获取MAP中所有VALUE的数组（ARRAY）  
    this.values = function() {  
        var arr = new Array();  
        for (i = 0; i < this.elements.length; i++) {  
            arr.push(this.elements[i].value);  
        }  
        return arr;  
    };  
    //获取MAP中所有KEY的数组（ARRAY）  
    this.keys = function() {  
        var arr = new Array();  
        for (i = 0; i < this.elements.length; i++) {  
            arr.push(this.elements[i].key);  
        }  
        return arr;  
    };  
}  

function editBtnEvent(){
	$$(this).parent().parent().find(".cart-edit-container").show();
}

function  finishBtnEvent(){
	var storeId = $$(this).attr("data-storeId");
	var productId = $$(this).attr("data-productId");
	var quantity = $$(this).parent().parent().find("input").val();
	changeGoods(storeId,productId,quantity);
	$$(this).parent().parent().parent().find(".quantity").html(quantity);
	$$(this).parent().parent().hide();
}

function deleteBtnEvent(){
	goodsRemove(parseInt($$(this).attr("data-store-id")),parseInt($$(this).attr("data-product-id")));
	initCart();
}

function getCartProduct(storeId,productId){
		var cartProductInfo = {};
	  for(var i=0;i<shop_goods.length;i++){
		 var cartInfo = shop_goods[i];	  
		 if(storeId==cartInfo["storeId"]){
			 var cartProductInfos = shop_goods[i]["products"];
			 for(var j=0;j<cartProductInfos.length;j++){
				 var cartProduct = cartProductInfos[j];
				 if(cartProduct["productId"]==productId){
					 cartProduct.storeName=cartInfo["storeName"];
					  cartProductInfo = cartProduct;
					  return cartProductInfo;
				 }
			 }
		 }  
	  }
	  return false;
}

function changeGoods(storeId,productId,quantity){
	for(var i=0;i<shop_goods.length;i++){
		 var cartInfo = shop_goods[i];	  
		 if(storeId==cartInfo["storeId"]){
			 var cartProductInfos = shop_goods[i]["products"];
			 for(var j=0;j<cartProductInfos.length;j++){
				 var cartProduct = cartProductInfos[j];
				 if(cartProduct["productId"]==productId){
					 cartProduct["quantity"] = quantity;
				 }
			 }
		 }  
	  }
}


var shop_goods= [];
var select_goods = [];   
var need_pay_goods = [];
//初始化购物车
function initCart() {
	goodsGroup();//初始化购物车商品
	goodsEvent();//初始化按钮事件
	goodsSyn();//购物车数据同步
}

function goodsGroup(){
	$$(".cart").find(".item-edit-btn").off('click');
	$$(".cart").find(".finish-btn").off('click');
	$$(".cart").find(".delete").off('click');
	$$(".cart-product-container").html("");
	 
    var cartTemplate = $$('#cartTemplate').html();
    var compiledCartTemplate = Template7.compile(cartTemplate);
    var innerHTML = compiledCartTemplate({cartList:shop_goods});
    $$(".cart-product-container").append(innerHTML);
	
}

function goodsEvent(){
	 $$(".cart").find(".item-edit-btn").on('click',editBtnEvent);
	 $$(".cart").find(".finish-btn").on('click',finishBtnEvent);
	 $$(".cart").find(".delete").on('click',deleteBtnEvent);
}

function goodsRemove(storeId,productId){
	var flag = false;
	for(var i=0;i<shop_goods.length;i++){
		if(shop_goods[i]["storeId"]==storeId){
			for(var j=0;i<shop_goods[i]["products"].length;j++){
				if(shop_goods[i]["products"][j]["productId"]==productId){
					shop_goods[i]["products"].splice(j,1);
					if(shop_goods[i]["products"].length==0){
						shop_goods.splice(i,1);
					}
					flag = true;
					break;
				}
			}
			if(flag){
				break;
			}
		}
	}
}

function goodsSyn(){
	app.request({
		url: "js/product-list.json",
	    method: 'POST',
	    contentType: 'application/json',
	    async:false,
	    data: shop_goods,
	    timeout:5000,
	    success: function (data) {
	    	
	    },
	    error:function (xhr,data){
	    	app.dialog.alert("购物车数据同步异常");
	    }
	  });
}